class PlanHorario < ActiveRecord::Base
  default_scope :order=>:inicio
  belongs_to :usuario
  belongs_to :grupo_horario
  has_many :horarios,:through => :grupo_horario
  validates_presence_of :inicio,:grupo_horario_id
  named_scope :por_mes, lambda{|fecha| {:conditions => ["(inicio between ? and ?) or (fin between ? and ?) 
 or (? between inicio and fin) or (? >= inicio and fin IS NULL)",
        fecha.beginning_of_month,fecha.end_of_month,
        fecha.beginning_of_month,fecha.end_of_month,
        fecha,fecha],
      :order=>"inicio" }}

  named_scope :por_fecha, lambda{|fecha| {:conditions => ["(? between inicio and fin) or (? >= inicio and fin IS NULL)",fecha,fecha]}}
  
  named_scope :para_vacacion, lambda{|v| {:conditions => [ '((inicio <= ? and fin>= ?) or (fin<= ? and fin>=?) or  (inicio>= ? and inicio <=?)) and usuario_id=?',v.desde,v.hasta,v.hasta,v.desde,v.desde,v.hasta,v.usuario_id]}}
  
    def periodo
    i=self.inicio || Date.today
    f=self.fin || Date.today
    (i..f)
  end
end
